# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Contributor: Dennis Przytarski <dennis@przytarski.com>
# Contributor: Francesco Zanini <francesco@zanini.me>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname="knot"
pkgver=2.9.4
pkgrel=0
pkgdesc="An high-performance authoritative-only DNS server"
url="https://www.knot-dns.cz/"
arch="all !x86 !armhf !armv7" # testsuite fails on 32 bit arches with musl 1.2
license="GPL-3.0-or-later"
depends=""
depends_dev="$pkgname $pkgname-libs-static $pkgname-utils"
checkdepends="softhsm"
makedepends="
	bison
	bsd-compat-headers
	flex
	gnutls-dev
	jansson-dev
	libcap-ng-dev
	libedit-dev
	libidn-dev
	libtool
	lmdb-dev
	m4
	openssl-dev
	perl
	sed
	userspace-rcu-dev
	zlib-dev
	"
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade"
pkgusers="$pkgname"
pkggroups="$pkgname"
subpackages="$pkgname-libs
	$pkgname-libs-static
	$pkgname-utils
	$pkgname-dev
	$pkgname-doc
	$pkgname-openrc
	"
source="https://secure.nic.cz/files/$pkgname-dns/$pkgname-$pkgver.tar.xz
	test_net.patch
	knotd.confd
	knotd.initd
	"
# tests fail due to alignment problems on armv6
[ "$CARCH" = "armhf" ] && options="!check"

prepare() {
	default_prepare

	cd "$builddir"
	# Make sure embedded LMDB library is not used.
	rm -rf src/contrib/lmdb
}

build() {
	./configure \
		--build="$CBUILD" \
		--host="$CHOST" \
		--prefix=/usr \
		--sysconfdir=/etc \
		--libexecdir="/usr/lib/$pkgname" \
		--with-rundir="/run/$pkgname" \
		--with-storage="/var/lib/$pkgname" \
		--disable-silent-rules
	make
}

check() {
	make check
}

package() {
	make DESTDIR="$pkgdir" install

	rm -rf "$pkgdir/run"
	chown "${pkgusers%% *}:${pkggroups%% *}" "$pkgdir/var/lib/$pkgname"
	chmod 750 "$pkgdir/var/lib/$pkgname"

	install -Dm 644 "$srcdir/knotd.confd" \
		"$pkgdir/etc/conf.d/knotd"
	install -Dm 755 "$srcdir/knotd.initd" \
		"$pkgdir/etc/init.d/knotd"
}

libs() {
	pkgdesc="Libraries used by the Knot DNS server and client applications"

	cd "$pkgdir"
	mkdir -p "$subpkgdir/usr/lib"
	mv ./usr/lib/libdnssec.so.* \
		./usr/lib/libknot.so.* \
		./usr/lib/libzscanner.so.* \
		"$subpkgdir/usr/lib/"
}

utils() {
	pkgdesc="DNS client utilities shipped with the Knot DNS server"

	mkdir -p "$subpkgdir/usr"
	mv "$pkgdir/usr/bin" "$subpkgdir/usr/"
}

gpg_signature_extensions="asc"
gpgfingerprints="good:742F A4E9 5829 B6C5 EAC6  B857 10BB 7AF6 FEBB D6AB"

sha512sums="05a2c492fe2efa541773d5ca01ed261447efa35842a56dc9fc1c82b70b8bec4b329461dc8a077d8b294247fff14cf9ab9aaac77160ccf9a5eb561c2c22f0399a  knot-2.9.4.tar.xz
39503d16603eaff04cb34de97bff987952818d229ccb5b190567198505ece8077efdf230d5402e69ca4ab8acb282c53bfaaf495360dc11191c985a48fbb61318  test_net.patch
471d3c639a8235ba09491c99d36c0a4f1074d6055ccfd3807be02a30d3ed5bbe69a84f0414ea7810db6bbc1e38f5837108e5744fc59f949ed78a262a7de4597e  knotd.confd
979f06a83dd4326920a682f8190319577faf904e0e379b3c55e0420eb43dcb55d86c6727015634fa0c2dff1dddac43bbd5a216ff04f217ad91d670eb899dbefa  knotd.initd"
